home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-20 / bpq406e.zip / DRIVERS.DOC < prev    next >
Text File  |  1992-09-05  |  16KB  |  469 lines

  1. From Version 4.00, the application interface to the switch has been changed.
  2. The new interface is called BPQ Host Mode (see BPQHOST.DOC for full details).
  3. Some software is available for the new interface (eg F6FBB BBS, TERM4), but,
  4. in order to support older software, and to provide new facilities, a number
  5. of drivers have been written. These are TSR's, which are loaded after BPQCODE.
  6.  
  7. The drivers supplied with 4.05 are detailed below:
  8.  
  9. BPQHTNC2
  10.  
  11. This provides the COMBIOS/TNC2 emulation, as used by W0RLI and G1NNA
  12. BBS's (amongst others), and various Terminal Programs (YAPPB, PAC2 etc).
  13.  
  14.  
  15. BPQHKISS
  16.  
  17. This provides the COMBIOS/KISS emulation. This was used for the NET
  18. TCP/IP interface, and for programs like STATS and TLMDC (the Satellite
  19. telemetry decode program). 
  20.  
  21.  
  22. DEDHOST
  23.  
  24. This provides an emulation of the WA8DED Host Mode driver used with DRSI
  25. cards (TNCTSR). It is used for PacketCluster and AA4RE BBS.
  26.  
  27.  
  28. NODEDRV4
  29.  
  30. This is used to interface the NOS TCP/IP package to the switch. It conforms
  31. to the PacketDriver interface spec.
  32.  
  33.  
  34.  
  35. Full details of the above drivers are given below
  36.  
  37.  
  38.  
  39.         TNC2 Emulation routine - BPQHTNC2
  40.  
  41.  
  42. This program provides the application interface for TNC2 applications
  43. on switch version 4.05 and above. BPQHTNC2 should be loaded after the switch.
  44. If only a single program uses the TNC2 interface, (eg NNA), it may be loaded
  45. in the programs's Desqview window, but if it is used by more than
  46. one program (eg RLI, or utilites such as PAC2, BPQTERM, MH), it should be
  47. laoded before Desqview. If in doubt, load it before DV.
  48.  
  49. The program may be called in two ways. If called without any paramters, it
  50. will use the TNCPORT information from BPQCFG.BIN, and use BPQHOST ports 33
  51. upwards. This should be adequate for the great majority of applications.
  52. Alternatively it is possible to supply 3 parameters, the number of TNC2 ports
  53. required, the first COMBIOS port required, and the first BPQHost port to use.
  54. This will only be necessary if you want to use more than 16 TNCPORTS, or if
  55. you are already using BPQHOST ports above 33.
  56.  
  57. For example,
  58.  
  59. To use the ports defined in BPQCFG.TXT (ie to be the same as earlier versions)
  60.  
  61.     BPQHTNC2
  62.  
  63. To create COM1-COM18, enter:
  64.  
  65.     BPQHTNC2 18 1 1
  66.  
  67. For COM2-COM5
  68.  
  69.     BPQHTNC2 4 2 1
  70.  
  71. A single copy of BPQHTNC2 can only support a contiguous set of COM ports. If
  72. you want set up say COM1-COM4, then COM8-COM9, you can run more than one 
  73. copy:
  74.  
  75.     BPQHTNC2 4 1 1
  76.     BPQHTNC2 2 8 5        (Four BPQHOST ports have been used by first)
  77.  
  78. There is some overhead in running two copies, so in general it would be
  79. better to rearrange the applications to use a contiguous set of COM ports.
  80.  
  81.  
  82. The last parameter will normally be 1. Only if you are using BPQ Host ports
  83. for other software (eg FBB, TERM4, DEDHOST), or are running more than one copy
  84. of BPQHTNC2, will it need changing.
  85.  
  86.  
  87. Please note that BPQHTNC2 reads BPQCFG.BIN to find what interrupt to use 
  88. to talk to the switch, and to get the default value for PACLEN. BPQCFG.BIN
  89. must therefore be in the current directory when BPQHTNC2 is loaded.
  90.  
  91. The following commands are supported by BPQHTNC2:
  92.  
  93. CONOK ON/OFF    - Indicates the port is available for use. By default, it
  94.           will be for the BBS application. See APPL comand.
  95.  
  96.  
  97. APPL        - Bit significant field, to indicate which application the
  98.           port is supporting. The first three are reserved for BBS,
  99.           connects to the SYSOP (HOST support), and remote SYSOP
  100.           facilities. The other 5 are available for you to define your
  101.           own application servers (eg DATABASE, UNIX gateway).
  102.           Default is 01, the BBS.
  103.  
  104.           To allow users to connect to you (using the C command 
  105.           from the switch without a param), set APPL=02, and CONOK ON
  106.  
  107.  
  108. BBSMON ON/OFF    - Reduces the monitor output to calls only (enough to maintain
  109.           the JA list). Place in the MBL config file startup section.
  110.  
  111. MTX ON/OFF    - Monitors transmitted frames - mainly used for debugging
  112.  
  113. MONITOR ON/OFF    - As in normal TNC
  114. MALL ON/OFF
  115. MCOM ON/OFF
  116. MCON ON/OFF       Note that to monitor whilst connected to the Node, you 
  117.           need MCON ON 
  118.  
  119. MMASK         - Selects which (radio) ports will be monitored. A bit
  120.           significant field - setting bit 0 allows monitoring of 
  121.           the first port, bit 1 the second, and so on. Default is
  122.           hex FF, monitoring all radio ports. Setting it to zero
  123.           will suppress all monitoring.
  124.  
  125. The monitor code will decode and display the network headers from messages
  126. between nodes. This enables you to see what routes are being used between
  127. nodes, as well as removing a lot of garbage from the monitor display!
  128.  
  129.  
  130. NOMODE ON/OFF    The next 2 are accepted, but are not fully implemented. In 
  131. NEWMODE ON/OFF  general BBS connects assume NOMODE on, others NOMODE off.
  132.  
  133. CONNECT
  134.  
  135. To connect to the node, use the command NODE (or K). This is equivalent to
  136. connecting to a normal node. There is a (roughly) equivalent command
  137. C SWITCH, which returns the string *** CONNECTED to SWITCH, and is used
  138. in MBL forward files, as the MBL software is expecting the first connect
  139. to be at Level 2. A Connect command without a parameter returns the
  140. current state, again mainly for use by MBL software. A connect with any other
  141. parameter connects to the Node, then passes the command to the Node's command
  142. processor, thus allowing you to enter a normal Connect from either TNC or NODE
  143. command level.
  144.  
  145. CONV
  146. TRANS 
  147. UNPROTO CALL [VIA CALL ...]
  148. BTEXT
  149.  
  150. The CONV and TRANS command enter the appropriate state, and if not connected
  151. to the Node, allow you to send UI frames. This is used for the MBL 'Mail for
  152. xxxx' broadcasts, and can be used for CQ's , etc. Beaconing is not supported,
  153. but the BTEXT text is saved, and may be send instead of the predefined ID
  154. message at intervals. This is primarily for RLI 'MAIL' beacons.
  155.  
  156.  
  157. Note that K is an abbreviation for NODE, not CONV, as in a normal TNC, as 
  158. normally you want to switch easily between TNC command and Node command modes.
  159.  
  160. SENDPAC
  161. CPACTIME    
  162. CR        - As normal TNC.
  163.  
  164. FLOW ON/OFF    - Similar to normal TNC, but a bit simpler. in particular
  165.           echoing is suppressed, so if you need to use FLOW ON, I
  166.           suggest you set ECHO OFF
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173. Background information on INT14 Drivers.
  174.  
  175.  
  176. Both BPQHTNC2 and BPQHKISS emulate the COMBIOS/MBBIOS interface used by
  177. WA7MBL, AA4RE and others.
  178.  
  179. The following contains information extracted from AA4RE's MBBIOS
  180. Documentation. It has been modified to conform to my COMBIOS
  181. emulation.
  182.  
  183. MBBIOS supports the standard INT 14 calls plus the extended ones as
  184. defined by Jeff Jacobsen, WA7MBL for his BBS program.  These are
  185. explained below.  AH=0 to AH=3 are identical to the IBM BIOS definition.
  186.  
  187. DX must contain the port number, which start at zero, so for COM1 set 
  188. DX=0, COM2 set DX=1, etc.
  189.  
  190.  
  191. AH = 0     Initialize
  192. ---------------------
  193.  
  194. This is provided for compatibility only. It has no effect except to
  195. return the current (virtual) LSR in AH, bit zero of which is set if
  196. any characters remain in the rx buffer, and virtual MSR in AL. 
  197.  
  198.  
  199.     The MSR bits supported are DCD=Connected
  200.                    CTS=Not busy
  201.  
  202.     An attempt is also made to maintain delta bits
  203.  
  204.          BIT 7 - Receive Line Signal Detect (DCD)
  205.          6 - Ring Indicator (Not supported) 
  206.              5 - Data Set Ready (Always on)
  207.              4 - Clear To Send
  208.  
  209.              3 - Delta  RLSD ( ie state has changed since last
  210.                                   access)
  211.              2 - Not Supported (Trailing Edge Ring Detect)
  212.              1 - Not Supported (Delta DSR)
  213.              0 - Delta CTS
  214.  
  215.  
  216. AH = 1     Send Character
  217. -------------------------
  218.  
  219. AL contains the character to send.  Return values are the same as above.
  220.  
  221.  
  222. AH = 2     Receive Character
  223. ----------------------------
  224.  
  225. On return, AL contains the character received.  AH contains the
  226. virtual LSR. Again, AH bit 0 indicates if there is additional characters 
  227. in the buffer.  This routine does NOT timeout while waiting for a character 
  228. but will hang indefinitely waiting for a character to appear.
  229.  
  230. AH = 3     Return Status
  231. ------------------------
  232.  
  233. Return values are the same as returned by the Initialize routine.
  234.  
  235. AH = 4     Inquiry
  236. ------------------
  237.  
  238. Returns AX and BX set to 0AA55H.  This call is used to see if the
  239. particular port is defined in TNCPORTLIST. Note that COMBIOS/MBBIOS
  240. set AX, but not BX
  241.  
  242.  
  243. AH = 5     Drop RTS
  244. -------------------
  245.  
  246. This drops (virtual) DTR and RTS.  Will stop higher level code sending
  247. any more data into the receive buffer. No return value.
  248.  
  249. AH = 6     Raise RTS
  250. --------------------
  251.  
  252. Raise DTR and RTS.  No return value.
  253.  
  254. AH = 7     Send Break
  255. ---------------------
  256.  
  257. Generates a "Break".  Returns the virtual TNC to Command mode from Converse
  258. or Transparent mode. No return value.
  259.  
  260. AH = 8     Non-destructive Read
  261. -------------------------------
  262.  
  263. Returns the next character in the buffer in AL without removing it from
  264. the buffer.  AH value defined as in AH=2 so you can use the Data Ready
  265. bit to check to see if you really did get a character.
  266.  
  267. AH = 9     Set/Get options
  268. --------------------------
  269.  
  270. Not implemented.
  271.  
  272.  
  273.  
  274. AH = A     Write buffer
  275. -----------------------
  276.  
  277. Sends CX characters starting at DI:ES.  Upon return, DI will be updated
  278. and CX will contain the unsent character count.  Unsent characters could
  279. result from either BUFFER FULL or hardware handshake is OFF.  AX will
  280. be set as in AH=3 (Status) above.
  281.  
  282. AH = B     Read buffer
  283. ------------------
  284.  
  285. Receives up to CX characters starting at DI:ES.  Upon return, CX set to
  286. actual count read and DI is updated.  If the buffer is empty, return is
  287. immediate with CX = 0. The function will return a 'logical' line, up
  288. to a CR in normal mode, or 17H in Host Mode. On return, AL contains the MSR
  289. and AH has the virtual LSR. Again, AH bit 0 indicates if there are additional 
  290. characters in the buffer.
  291.  
  292.  
  293.  
  294. AH = 1F - G8BPQ NODE-SPECIFIC COMBIOS EXTENTIONS 
  295. ------------------------------------------------
  296.  
  297. AL = 0 - Return Version and Node DS
  298.  
  299. Returns: AX=Node data segment
  300.      DH=Major Version
  301.      DL=Minor Version    - ie for version 3.50, DH=3, DL=50
  302.  
  303.  
  304. AL = 1 - Return ES:SI pointing to connected call (in AX25 firm), or
  305.        SI=0 if not connected. If connected, returns session type 
  306.        in AH, and port number (if L2 session) in AL. Session
  307.        type is a bit significant field defined as follows:
  308.  
  309.        ;
  310.        ;    CIRCUITTYPE EQUATES
  311.         ;
  312.        L2LINK    EQU    1
  313.        SESSION    EQU    10B
  314.        UPLINK    EQU    100B
  315.        DOWNLINK    EQU    1000B
  316.        HOST        EQU    10000B
  317.     
  318.  
  319. AL = 2  Return (in AH) number of unacked packets on connection.
  320.     Some versions (pre-4.05f) incorrectly returned the value
  321.     in AL instead of AH. To maintain compatibility with software
  322.     written to allow for this, the value is now returned in AL
  323.     as well as AH.
  324.  
  325. AL = 3  (Versions 4.05f and later)
  326.     Set PACLEN to the value recommended by the node. This will
  327.     initially be derived from the type of connect (ie L2 or L4),
  328.     and the port used (if L2). Eventually it will be varied to
  329.     optimise throughput, based on link performance.
  330.  
  331. AL = 10H Disconnect user form virtual TNC, and return user to Node
  332.  
  333.  
  334. The segment registers are saved, (unless retuning a value), but other 
  335. registers may be destroyed.
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.         WA8DED Host Mode Interface for G8BPQ Switch.
  343.  
  344.  
  345.  
  346. A facility has been developed to allow applications which normaly operate
  347. in DED Host Mode, using a DRSI card and the DRSI support routine TNCTSR,
  348. to be used with my switch code. An external interface routine DEDHOST.COM
  349. is used to emulate the DRSI support routine TNCTSR. DEDHOST must be run after
  350. BPQCODE. If running with Desqview, DEDHOST should be run in the same window
  351. as the application. Version 4.01 (or higher) of BPQCODE is required. Note that
  352. my code emulates a single DSRI port - multiple comms links may be connected to
  353. the switch, but as far as the application software is concerned, there is a
  354. single (virtual) link to the switch, capable of supporting up to 32 sessions.
  355.  
  356. DEDHOST.COM requires 5 parameters, all are decimal numbers. A 6th is optional
  357. - if present, it is a single character. Parameters are:
  358.  
  359. Number of Streams.
  360.  
  361. This defines the maximum number of simultaneous users. The maximum is 32. 
  362.  
  363. Start Stream.
  364.  
  365. The first stream number to use. The switch supports 64 streams. You must
  366. ensure that each application running with the switch uses a different range
  367. of streams. 
  368.  
  369.  
  370. Application.
  371.  
  372. The number allocated to this application in the APPLICATIONS param of
  373. BPQCFG.TXT. Will normally be 1 if running a BBS or similar system.
  374.  
  375. Buffer Space.
  376.  
  377. The space to be allocated for buffering messages. You can specify up to 60
  378. (Kilobytes). The program will allocate a minimum of 8k even if you specify
  379. less. The space needed will depend on your traffic, and the software you are
  380. using. I suggest you allocate as much as you can spare. If the application
  381. then runs short of memory, you will have to experiment to find the optimum
  382. value for your installation.
  383.  
  384. Interrupt Number.
  385.  
  386. The Interrupt used by the application to communicate with DEDHOST. Will be
  387. 255, unless you need to use that for some other software.
  388.  
  389.  
  390. Autotimer Flag.
  391.  
  392. Normally the driver is configured to request the switch to send a message
  393. after 11 minutes without activity on each stream. This is so that
  394. PacketCluster users may remain connected during perions of low activity. If
  395. you dont want this facility, or are not using Packetcluster, set parameter to
  396. 'N'. If you omit the parameter, or enter any other value, it will be enabled.
  397.  
  398.  
  399.         A typical command line would be DEDHOST 32 1 1 60 255 Y
  400.  
  401. Please note that DEDHOST reads BPQCFG.BIN to find what interrupt to use 
  402. to talk to the switch. BPQCFG.BIN must therefore be in the current directory
  403. when DEDHOST is loaded.
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.                    NOS/BPQ Link - NODEDRV4.COM
  412.  
  413.  
  414. The 'Packet Driver' I wrote to allow NOS to communicate with the switch
  415. has been modified to use the BPQ Host mode interface. One copy of the
  416. packet driver is needed for each radio port to be used by NOS, plus one
  417. for the loopback port if you want NOS to be able to talk to the switch.
  418. I dont have a lot of experience of using NOS, but I suggest that if you
  419. are using TCP/IP over NETROM that you use the lookback port, and let the
  420. switch handle all the radio links. Only if you are using IP in datagram
  421. or ax.25 virtual circuit mode will you need to give NOS direct access to
  422. the radio ports.
  423.  
  424. Please note that you need at least version 4.03 of BPQCODE.EXE
  425.  
  426. The following is an extract from my system. You will need to tailor
  427. it to your own requirements.
  428.  
  429.  
  430. If using Desqview, NODEDRV4 must be loaded in the same window as NOS -
  431. if you put it under desqview the system will probably crash. It takes
  432. three parameters, the software interrupt number used by NOS to communicate
  433. with it (in the range 60-7f hex), the BPQ Host port to use to talk to the
  434. switch (1 - 63), and the number of the radio port to be accessed.
  435.  
  436.  
  437. Please note that NODEDRV4 reads BPQCFG.BIN to find what interrupt to use 
  438. to talk to the switch. BPQCFG.BIN must therefore be in the current directory
  439. when NODEDRV4 is loaded.
  440.  
  441.  
  442. STARTNOS.BAT
  443.  
  444.  
  445. nodedrv4 0x61 33 1         I am using BPQHost ports 33-35, as I use   
  446. nodedrv4 0x62 34 2        the first 32 for a PacketCluster Node. 
  447. nodedrv4 0x63 35 3        I have given NOS access to 2 radio ports,
  448. nos                and a loopback port to the switch.
  449.  
  450.  
  451.  
  452. This is the 'attach' bit of AUTOEXEC.NET. I can't see where the parameter
  453. following the interface name is used, but the code suggests it is the
  454. maximum length of the transmit queue. The next param is the MTU.
  455.  
  456.  
  457. #
  458. attach packet 61 ax1 5 256        Radio Port 1
  459. attach packet 62 ax2 5 256        Radio Port 2
  460. attach packet 63 node 5 236        Loopback link to the switch
  461. #
  462.  
  463.  
  464. This is a new facility, and there is very little local IP activity for
  465. me to try it with. Any feedback would be most welcome, both on problems
  466. and suggestions on how best to set up the system.
  467.  
  468.  
  469.